-
Notifications
You must be signed in to change notification settings - Fork 790
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Cleanup capitalization and dependencies #1700
Conversation
@@ -11,10 +11,9 @@ | |||
<ProjectGuid>{8b3e283d-b5fe-4055-9d80-7e3a32f3967b}</ProjectGuid> | |||
<OutputType>Exe</OutputType> | |||
<NoWarn>$(NoWarn);62</NoWarn> | |||
<AssemblyName>FsiAnyCPU</AssemblyName> | |||
<AssemblyName>fsiAnyCPU</AssemblyName> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Are you sure this is the right capitalization?
Assembly Names guidance is Pascal casing not camel casing? Although they are in fact case insensitive in the runtime.
If you want to change the output filename on disk to camel case use the TargetFilename property.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is not high priority. I'm trying to align these to those used by F# on Linux to help prevent these awkward capitalization errors in the longer term.
github.com/fsharp/fsharp has always used fsiAnyCpu
. On Linux we'd expect the executable names are lowercase.exe
.there is an argument it should have used fsianycpu
, but I think just aligning to the existing F#-on-Linux norm is simplest.
I had experimented with removing the Also, the RIDs in |
@cartermp I put the runtimes back for now. Let's do that separately. Kevin and I discussed and thought it wasn't needed, but maybe it is |
Having thought about ... I now think they are needed and probably needed in all project.jsons. Because we shouldn’t take a reference on APIs that are not implemented in specific target platforms. |
@KevinRansom So the "runtime" section is a constraint meaning "must run on at least this platform"? Still, it seems really strange to have the names of linux distros in there. |
@dsyme perhaps I i's strange ... but the coreclr does have many distro specific implementations of code. We can have a discussion over whether that is the right choice. I'm expecting we would be in agreement over that discussion and probably would wish it were different. Kevin |
Runtimes are needed for self-contained deployment of applications, but aren't intended for libraries unless you do something like take a dependency on a native binary. We shouldn't need to specify any runtime unless we've got platform-specific dependencies or native code. I'm not sure how the move to MSBuild will affect this, though. |
@cartermp Well I believe that restore fails if you have a dependency on a library that doesn't have a specific native implementation for each of the specified frameworks. So it is kind of irrelevant what the "intent" is. |
So to clarify - you want to protect against the lack of a native implementation on a given target where |
While working through the build process I noticed a coupe of things
Fsi.exe
should be calledfsi.exe
systematically. Let's normalize this now.Fsi.exe
is always calledfsiAnyCpu.exe
on Mono. Although both are odd names, it's best to use the same as what is already used on case-sensitive file systems. Let's normalize this now.